package com.ruoyi.system.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.system.entity.AbdulBaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import com.ruoyi.common.annotation.Excel;

/**
 * 抖音券兑换设置对象 douyin_coupon_redemption
 *
 * @author ruoyi
 * @date 2025-05-14
 */
@Data
@ApiModel("抖音券兑换设置")
public class DouyinCouponRedemption extends AbdulBaseEntity {

    private static final long serialVersionUID = 1L;

    /** 兑换设置唯一标识符 */
    @ApiModelProperty("兑换设置唯一标识符")
    private Long id;

    /** 抖音账号名称（如"商家官方号"） */
    @Excel(name = "抖音账号名称")
    @ApiModelProperty("抖音账号名称")
    private String douyinAccount;

    /** 抖音账号唯一ID（由抖音平台分配） */
    @Excel(name = "抖音账号唯一ID", readConverterExp = "由=抖音平台分配")
    @ApiModelProperty("抖音账号唯一ID")
    private String douyinUid;

    /** 抖音门店名称（冗余字段，避免关联查询） */
    @Excel(name = "抖音门店名称", readConverterExp = "冗=余字段，避免关联查询")
    @ApiModelProperty("抖音门店名称")
    private String storeName;

    /** 券类型（折扣券/代金券/赠品券） */
    @Excel(name = "券类型", readConverterExp = "折=扣券/代金券/赠品券")
    @ApiModelProperty("券类型")
    private String couponType;

    /** 券名称（如"满100减20"） */
    @Excel(name = "券名称")
    @ApiModelProperty("券名称")
    private String couponName;

    /** 券面值（如折扣券为折扣率，代金券为金额） */
    @Excel(name = "券面值", readConverterExp = "如=折扣券为折扣率，代金券为金额")
    @ApiModelProperty("券面值")
    private BigDecimal couponValue;

    /** 兑换规则（如"满XX元可用"、"仅限工作日"） */
    @Excel(name = "兑换规则")
    @ApiModelProperty("兑换规则")
    private String redemptionRule;

    /** 每日兑换数量限制（0表示无限制） */
    @Excel(name = "每日兑换数量限制", readConverterExp = "0=表示无限制")
    @ApiModelProperty("每日兑换数量限制")
    private Long dailyLimit;

    /** 总兑换数量限制（0表示无限制） */
    @Excel(name = "总兑换数量限制", readConverterExp = "0=表示无限制")
    @ApiModelProperty("总兑换数量限制")
    private Long totalLimit;

    /** 兑换设置状态（启用/停用/已过期/已删除） */
    @Excel(name = "兑换设置状态", readConverterExp = "启=用/停用/已过期/已删除")
    @ApiModelProperty("兑换设置状态")
    private String status;

    /** 兑换开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "兑换开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("兑换开始时间")
    private Date startTime;

    /** 兑换结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "兑换结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("兑换结束时间")
    private Date endTime;

    /** 操作人（如"系统自动"、"管理员李四"） */
    @Excel(name = "操作人")
    @ApiModelProperty("操作人")
    private String operator;

    /** 手机号 */
    @Excel(name = "手机号")
    @ApiModelProperty("手机号")
    private String phone;
}